/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package byblos.negocio.tela;

import byblos.negocio.Idioma;
import byblos.negocio.galeria.GaleriaHome;
import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;

/**
 *
 * @author Diego
 */
@Entity
@NamedQueries(value = {@NamedQuery(name = "TelaPorTipo", query = "SELECT t FROM Tela t WHERE t.tipoTela = ?1"),
    @NamedQuery(name = "TelaPorTipoIdioma", query = "SELECT t FROM Tela t WHERE t.tipoTela = ?1 AND t.idioma = ?2")
})
public class Tela implements Serializable {

    @Id
    @GeneratedValue
    private int id;
    private String display;
    private String tituloTexto;
    @Column(columnDefinition = "text")
    private String texto;
    private Idioma idioma;
    private TipoTela tipoTela;
    @OneToOne(cascade = CascadeType.ALL)
    private GaleriaHome galeria;

    public Tela() {
    }

    public static Tela criarTela(TipoTela tipo, Idioma idioma) {
        Tela tela = new Tela();
        tela.tipoTela = tipo;
        tela.idioma = idioma;
        if (tipo == TipoTela.HOME) {
            tela.galeria = new GaleriaHome();
        }
        return tela;
    }

    public GaleriaHome getGaleria() {
        return galeria;
    }

    public void setGaleria(GaleriaHome galeria) {
        this.galeria = galeria;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getDisplay() {
        return display;
    }

    public void setDisplay(String display) {
        this.display = display;
    }

    public String getTexto() {
        return texto;
    }

    public void setTexto(String texto) {
        this.texto = texto;
    }

    public String getTituloTexto() {
        return tituloTexto;
    }

    public void setTituloTexto(String tituloTexto) {
        this.tituloTexto = tituloTexto;
    }

    public TipoTela getTipoTela() {
        return tipoTela;
    }

    public void setTipoTela(TipoTela tipoTela) {
        this.tipoTela = tipoTela;
    }

    public Idioma getIdioma() {
        return idioma;
    }

    public void setIdioma(Idioma idioma) {
        this.idioma = idioma;
    }
}
